const CryptoJs = require('crypto-js')

const key = CryptoJs.enc.Utf8.parse('mySecretKey12345');  // 16字节密钥
const iv = CryptoJs.enc.Utf8.parse('myInitialization') // 16字节初始化向量

// hook 加密数据
var AES_backup = CryptoJs.AES.encrypt
CryptoJs.AES.encrypt = function (data, key, obj) {
    debugger;
    console.log("Hook AES -->> 加密前的数据：", data)
    return AES_backup(data, key, obj)
}


// 加密函数
function encryptData(data) {
    const encrypt = CryptoJs.AES.encrypt(data, key, {
        iv: iv,
        mode: CryptoJs.mode.CBC,
        padding: CryptoJs.pad.Pkcs7
    });
    return encrypt.toString();
}

// 解密函数

function decryptData(data) {
    const decrypt = CryptoJs.AES.decrypt(data, key, {
        iv: iv,
        mode: CryptoJs.mode.CBC,
        padding: CryptoJs.pad.Pkcs7
    });
    return decrypt.toString(CryptoJs.enc.Utf8);
}

//调用加密函数
const data = 'Hello World!';
const encryptedData = encryptData(data);
console.log("加密后的数据：", encryptedData)

const decryptedData = decryptData(encryptedData)
console.log("解密后的数据：", decryptedData)